home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2007 November / PCWNOV07.iso / Software / Shareware / Vinyl Studio 3 / VSInstall.exe / VinylStudio.chm / help / eolasfix.js < prev    next >
Encoding:
JavaScript  |  2007-07-24  |  1.9 KB  |  57 lines

  1. // Documentation & updates available at:
  2. // http://codecentre.eplica.is/js/eolasfix/test.htm
  3.  
  4. (function ()
  5. {
  6.   // run only once!
  7.   if (window.__Eolas_Fixed) { return; }
  8.   __Eolas_Fixed = 1;
  9.  
  10.   var doc = document,                                   // minifier alias
  11.       getElementsByTagName = 'getElementsByTagName',    // minifier alias
  12.       outerHTML = 'outerHTML',                          // minifier alias
  13. //    tags = ['object','embed','applet'],               // tags to "fix"
  14.       tags = ['embed'],
  15.       x = -1, y, z,
  16.       elm, paramElm, paramsHTML,
  17.       elements, element_tags
  18.  
  19.   eolasfix = function ()
  20.   {
  21.     // for each tag name specified in Array t
  22.     elements = doc [getElementsByTagName]
  23.     while (tags [++x])
  24.     {
  25.       // find all elements of that type in the document
  26.       // loop through the elements
  27.       element_tags = elements (tags[x]);
  28.       y = 0;
  29.       while (elm = element_tags [y++])
  30.       {
  31.         paramsHTML = "";
  32.         z = 0;
  33.         // sometimes <param> elements don't show up in innerHTML
  34. //        if (!/<p/i.test(elm[outerHTML]))
  35. //        {
  36. //          // and then we need to collect their outerHTML.
  37. //          while (paramElm = elements('param')[z++])
  38. //          {
  39. //            paramsHTML += paramElm[outerHTML];
  40. //          }
  41. //        }
  42.         // Then clone and replace the `elm` in the DOM and insert `paramHTML`.
  43.         elm[outerHTML] = elm[outerHTML].replace(/>/, '>'+paramsHTML);
  44.       }
  45.     }
  46.   };
  47.  
  48.   0/*@cc_on + 1 @*/ && eolasfix();
  49.                           // if is_ie, then run the fix straight away 
  50.                           // (because the defer="defer" attribute has delayed
  51.                           // execution until the DOM has loaded)
  52.   window.opera && doc.addEventListener('DOMContentLoaded', eolasfix, 0);
  53.                           // else if we're running Opera, then set an
  54.                           // `DOMContentLoaded` event to run the fix.
  55.  
  56. })();
  57.